1. Field of the Invention
The field of the invention is methods of optimizing the interaction (e.g. data flow) between a software client application and database server software (or, more generally, software serving/providing data from a remote data source). The invention can be used with traditional legacy applications to make them web delivered; it allows, for example, database applications to be cloud-based, with client applications connecting to a hardware server running the database server software over a relatively slow connection, such as the public Internet.
2. Technical Background
Since the early 1990's there has been a well-known computer architecture called client-server where the client computer runs an application and the server computer typically, runs server software such as database server software. The client applications connect to the database and send requests; they then use the responses to drive the client application.
These client and server systems have had to reside on local network connections or else they perform very slowly or have to be written specifically to handle low network speeds and high amounts of latency. In the last few years there has been a shift in the focus of client-server systems to web based systems where the client connects to a server component which then connects to the database. This means the application can work over slower network links but has a number of disadvantages, the main one being that the application is limited to how much data it can send to the client, so web applications are generally less sophisticated than the original client-server systems. This means that developers have two options, the first is to create client-server systems which gives them the richness of a full application but requires a local network connection to function properly or to write a web based application which means they will work over a remote connection but functionality is poor.
3. Discussion of Related Art
Over the last 3 years especially, new developments have seen a trend whereby software vendors are offering their traditional on-premises software to their customers as a hosted service. This is either being achieved using Server Based Computing or by re-creating a new version of the existing application using Web 2.0 technologies. This is a natural progression as they have moved from core competencies of creating the software, to managing the delivery of the software on behalf of their clients.